With the advent of computers and computer networks, people are storing information, in the form of objects, in memory that is accessible by server computers associated with client-server systems. A client-server system allows a person to use a client computer to access a part of an object (also referred to herein as a “property” or an “object property”) to read or write to the object. For example, a person can use a client computer to request a copy of the object property that is stored on the server. In response to the request, the server provides the requested copy to the client computer. A reader associated with a client computer is used for accessing the object property in read mode. A writer associated with a client computer is used for accessing the object property in write mode.
A plurality of readers, a plurality of writers, or a combination thereof, can request to access the object property. In order to coordinate a plurality of requests for accessing the object property, two different state modes, stateless mode and stateful mode, have conventionally been used. Stateful mode provides a higher level of coherency for the object property than stateless mode. In other words, there is a significantly lower probability with stateful mode than with stateless mode that either a reader or a writer will have a down level copy of a requested object property or that one writer's modification to an object property will inadvertently delete another writer's modification to the same object property, for example, due to the timing of when the respective modifications are received by the server. However, stateful mode is known to result in more messaging between the clients and the server in order to provide the higher level of coherency. Therefore, people have had to choose between reducing messaging as provided by stateless mode and a higher level of coherency provided by stateful mode.
The drawings referred to in this brief description should be understood as not being drawn to scale unless specifically noted.